﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Engine.World.Generic;
using Engine.World.GridBased.Layers;

namespace Engine.World.GridBased
{
    public class GridBasedLevel : GenericLevel
    {
        private enum GridBasedLayerTypes : int
        {
            Floor = 0,
            Obstacle = Floor + 1,
            Interactive = Obstacle + 1,
            ParticleEffect = Interactive + 1,
            Light = ParticleEffect + 1,
            Sound = Light + 1,
        }

        public GridBasedLevel()
            : base()
        {
            layerList.Add(new GridBasedLayerFloor());
            layerList.Add(new GridBasedLayerObstacle());
            layerList.Add(new GridBasedLayerInteractive());
            layerList.Add(new GridBasedLayerParticleEffect());
            layerList.Add(new GridBasedLayerLight());
            layerList.Add(new GridBasedLayerSound());
        }

        //public GridBasedLayerFloor LayerFloor
        //{
        //    get
        //    {
        //        return layerList[GridBasedLayerTypes.Floor];
        //    }
        //    set
        //    {
        //        layerList[GridBasedLayerTypes.Floor] = value;
        //    }
        //}

        //public GridBasedLayerFloor LayerObstacle
        //{
        //    get
        //    {
        //        return layerList[GridBasedLayerTypes.Obstacle];
        //    }
        //    set
        //    {
        //        layerList[GridBasedLayerTypes.Obstacle] = value;
        //    }
        //}

        //public GridBasedLayerFloor LayerInteractive
        //{
        //    get
        //    {
        //        return layerList[GridBasedLayerTypes.Interactive];
        //    }
        //    set
        //    {
        //        layerList[GridBasedLayerTypes.Interactive] = value;
        //    }
        //}

        //public GridBasedLayerFloor LayerParticleEffect
        //{
        //    get
        //    {
        //        return layerList[GridBasedLayerTypes.ParticleEffect];
        //    }
        //    set
        //    {
        //        layerList[GridBasedLayerTypes.ParticleEffect] = value;
        //    }
        //}

        //public GridBasedLayerFloor LayerLight
        //{
        //    get
        //    {
        //        return layerList[GridBasedLayerTypes.Light];
        //    }
        //    set
        //    {
        //        layerList[GridBasedLayerTypes.Light] = value;
        //    }
        //}

        //public GridBasedLayerFloor LayerSound
        //{
        //    get
        //    {
        //        return layerList[GridBasedLayerTypes.Sound];
        //    }
        //    set
        //    {
        //        layerList[GridBasedLayerTypes.Sound] = value;
        //    }
        //}
    }
}
